package cn.disicn.common;

/**
 * 
 * @author Luyao
 * @date 2017年11月25日 下午2:33:15
 * @desc:常量类
 */
public class Const {

	/**
	 * 
	 * @author Luyao
	 * @date 2017年11月27日 下午3:49:43
	 * @desc:定义任务审核状态
	 */
	public enum auditStatusEnum {
		BEING_AUDITED(0, "正在审核"), AUDIT_FAILURE(1, "审核失败"), SUCCESSFUL_AUDIT(2, "审核成功");

		auditStatusEnum(int code, String value) {
			this.code = code;
			this.value = value;
		}

		private int code;
		private String value;

		public int getCode() {
			return code;
		}

		public void setCode(int code) {
			this.code = code;
		}

		public String getValue() {
			return value;
		}

		public void setValue(String value) {
			this.value = value;
		}

		public static auditStatusEnum codeOf(int code) {
			for (auditStatusEnum auditStatusEnum : values()) {
				if (auditStatusEnum.getCode() == code) {
					return auditStatusEnum;
				}
			}
			throw new RuntimeException("没有找到对应的枚举");
		}
	}

	/**
	 * 
	 * @author Luyao
	 * @date 2017年11月27日 上午11:57:20
	 * @desc:定义任务状态
	 */
	public enum taskStatusEnum {
		SIGN_UP(0, "待接单"), UNDERWAY(1, "进行中"), SUBMITTED(2, "已提交审核"), OVER(3, "已完结");

		taskStatusEnum(int code, String value) {
			this.code = code;
			this.value = value;
		}

		private int code;
		private String value;

		public int getCode() {
			return code;
		}

		public void setCode(int code) {
			this.code = code;
		}

		public String getValue() {
			return value;
		}

		public void setValue(String value) {
			this.value = value;
		}

		public static taskStatusEnum codeOf(int code) {
			for (taskStatusEnum taskStatusEnum : values()) {
				if (taskStatusEnum.getCode() == code) {
					return taskStatusEnum;
				}
			}
			throw new RuntimeException("没有找到对应的枚举");
		}
	}

	/**
	 * 
	 * @author Luyao
	 * @date 2017年11月25日 下午2:34:59
	 * @desc:定义用户session key
	 */
	public interface userType {
		String CURRENT_USER = "secuser";
		String CURRENT_ADMIN = "currentAdmin";
	}

	/**
	 * 
	 * @author Luyao
	 * @date 2017年11月26日 上午11:55:17
	 * @desc:定义用户登录类型
	 */
	public interface loginType {
		String PHONE = "phone";
		String EMAIL = "email";
	}

	/**
	 * 
	 * @author Luyao
	 * @date 2017年11月27日 上午11:38:18
	 * @desc:定义用户状态
	 */
	public enum userStatusEnum {
		NOT_CERTIFIED(0, "未认证"), AUTHENTICATED(1, "已认证"), FROZEN(2, "冻结");

		userStatusEnum(int code, String value) {
			this.code = code;
			this.value = value;
		}

		private int code;
		private String value;

		public int getCode() {
			return code;
		}

		public void setCode(int code) {
			this.code = code;
		}

		public String getValue() {
			return value;
		}

		public void setValue(String value) {
			this.value = value;
		}

		public static userStatusEnum codeOf(int code) {
			for (userStatusEnum userStatusEnum : values()) {
				if (userStatusEnum.getCode() == code) {
					return userStatusEnum;
				}
			}
			throw new RuntimeException("没有找到对应的枚举");
		}

	}

	/**
	 * 
	 * @author Luyao
	 * @date 2017年11月25日 下午2:35:32
	 * @desc:定义付款方式
	 */
	public enum PayTypeEnum {
		ALIPAY(1, "支付宝"), WECHATPAY(2, "微信支付");

		PayTypeEnum(int code, String value) {
			this.code = code;
			this.value = value;
		}

		private int code;
		private String value;

		public int getCode() {
			return code;
		}

		public String getValue() {
			return value;
		}

		public static PayTypeEnum codeOf(int code) {
			for (PayTypeEnum PayTypeEnum : values()) {
				if (PayTypeEnum.getCode() == code) {
					return PayTypeEnum;
				}
			}
			throw new RuntimeException("没有找到对应的枚举");
		}
	}

}
